package com.mikufufu.blog.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 文章表
 * 
 */
@Data
@TableName(value = "blog_article")
public class Article implements Serializable {
    /**
     * 文章主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "文章主键")
    private Integer id;

    /**
     * 文章标题
     */
    @TableField(value = "title")
    @ApiModelProperty(value = "文章标题")
    private String title;

    /**
     * 作者用户id
     */
    @TableField(value = "user_id")
    @ApiModelProperty(value = "作者用户id")
    private Integer userId;

    /**
     * 文章封面链接
     */
    @TableField(value = "img_url")
    @ApiModelProperty(value = "文章封面链接")
    private String imgUrl;

    /**
     * 文章梗概
     */
    @TableField(value = "article_overview")
    @ApiModelProperty(value = "文章梗概")
    private String articleOverview;

    /**
     * 文章正文
     */
    @TableField(value = "article_content")
    @ApiModelProperty(value = "文章正文")
    private String articleContent;

    /**
     * 发布日期
     */
    @TableField(value = "publish_date")
    @ApiModelProperty(value = "发布日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date publishDate;

    /**
     * 文章分类id
     */
    @TableField(value = "category_id")
    @ApiModelProperty(value = "文章分类id")
    private Integer categoryId;

    /**
     * 文章创建时间
     */
    @TableField(value = "create_time")
    @ApiModelProperty(value = "文章创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    @ApiModelProperty(value = "更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * 文章状态(0.显示,1.隐藏,2.密码查看)
     */
    @TableField(value = "`status`")
    @ApiModelProperty(value = "文章状态(0.显示,1.隐藏,2.密码查看)")
    private Integer status;

    /**
     * 文章密码（状态为密码查看时，用于鉴权，管理员可无需密码查看）
     */
    @TableField(value = "`password`")
    @ApiModelProperty(value = "文章密码（状态为密码查看时，用于鉴权，管理员可无需密码查看）")
    private String password;

    private static final long serialVersionUID = 1L;
}